/*
 *  linux/lib/wait.c
 *
 *  (C) 1991  Linus Torvalds
 *
 *     该程序包括函数waitpid()和wait()。这两个函数允许进程获取与其子进程之一的状态信息。
 * 各种选项允许获取已经终止或停止的子进程状态信息。如果存在两个或两个以上子进程的状态
 * 信息，则报告的顺序是不指定的。
 *     wait()将挂起当前进程，直到其子进程之一退出（终止），或者收到要求终止该进程的信号，
 * 或者是需要调用一个信号句柄（信号处理程序）
 *     waitpid()挂起当前进程，直到pid 指定的子进程退出（终止）或者收到要求终止该进程的
 * 信号，或者是需要调用一个信号句柄（信号处理程序）。
 *     如果pid= -1，options=0，则waitpid()的作用与wait()函数一样。否则其行为将随pid 和
 * options 参数的不同而不同。（参见kernel/exit.c,142）
 */

#define __LIBRARY__
#include <unistd.h>
#include <sys/wait.h>

// wait pid系统调用; 获取子进程的运行状态
// pid_t waitpid (pid_t pid, int * wait_stat, int options)
_syscall3(pid_t,waitpid,pid_t,pid,int *,wait_stat,int,options)

// wait系统调用
pid_t wait(int * wait_stat)
{
	// pid = -1，不限定等待的id是什么
	return waitpid(-1,wait_stat,0);
}
